#ifndef _BYTE_ARRAY_H
#define _BYTE_ARRAY_H

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

struct byte_array {
    ssize_t room;
    ssize_t len;
    char *data;
};

struct byte_array *byte_array_new();
void byte_array_free(struct byte_array *array);
int byte_array_size(struct byte_array *array);
int byte_array_set_size(struct byte_array *array, ssize_t sz);
void byte_array_append(struct byte_array *array, const void *o, ssize_t sz);
void byte_array_prepend(struct byte_array *array, const void *o, ssize_t sz);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif // _BYTE_ARRAY_H
